import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param input int整型一维数组 
     * @param k int整型 
     * @return int整型ArrayList
     */
    public ArrayList<Integer> GetLeastNumbers_Solution (int[] input, int k) {
        // write code here
        ArrayList<Integer> list = new ArrayList<>();
        if(k == 0) {
            return list;
        }
        create(input,input.length);
        for(int i = input.length-1;i>=0;i--) {
            list.add(input[0]);
            int tmp = input[0];
            input[0] = input[i];
            input[i] = tmp;
            k--;
            if(k == 0) {
                break;
            }
            create(input,i);
        }
        return list;
    }
    private void create(int[] arr,int len) {
        for(int i = len/2-1;i>=0;i--) {
            int j = 2*i + 1;
            if(j+1 < len && arr[j+1] < arr[j]) {
                j++;
            }
            if(arr[i] > arr[j]) {
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
        }
    }
}